<?php

include_once './Classe.class.php';
include_once './Attribute.class.php';
include_once '../lib/helper/RicarlyHelper.php';

$dataDirectory = '../xml/';
$fileWithAllClasses = $dataDirectory.'AllClasses.xml';

$allClasses = array();

// Vérification que le fichier, contenant toutes les classes à créer, existe.
if (file_exists($fileWithAllClasses)) {
	//Lecture du fichier AllClasses.xml
	$xml = simplexml_load_file($fileWithAllClasses);
	//Récupération des classes sous forme d'un tableau
	convertXmlObjToArr($xml, $allClasses);
	//Lecture du tableau pour récupérer le nom des classes pour lire les fichiers XML concernés
	for ($i = 0; $i < sizeof($allClasses['class']); $i++) {
		//Récupération du nom de la classe
		if(sizeof($allClasses['class']) == 1){
			$nameOfClasse = $allClasses['class'];
		}else{
			$nameOfClasse = $allClasses['class'][$i];
		}
		$url = $dataDirectory.$nameOfClasse.'.xml';
		//Vérification que le fichier XML correspondant existe
		if (file_exists($url)){
			$xml = simplexml_load_file($url);
			$oneClasse = array();
			//Récupération du fichier XML sous forme d'un tableau
			convertXmlObjToArr($xml, $oneClasse);
			$aClasse = new Classe();
			//Transformation du tableau en classe Classe
			$aClasse = getClassForXml($oneClasse);
			//Vérification si il y a erreur lors de la lecture du fichier XML
			if($aClasse->getHasError()){
				echo $aClasse->getMessageError();
			}else{
				//Vérification que la Classe n'existe pas en DB
				if(existInDB($aClasse->getNomClasse()) == true){
					//La classe existe en DB
					echo "<br> La classe ".$aClasse->getNomClasse()." existe déjà en DB...";
					//TODO ---> compare colonne / attribute => DELETE ? ALTER ? 
				}else{
					//La classe n'existe pas en DB
					$queryForCreate = $aClasse->getQueryForCreate();
					if(createInDB($queryForCreate)){
						echo "La création de la classe ".$aClasse->getNomClasse()." s'est effectuée correctement!";
						createModelFromClasse($aClasse);
						if($aClasse->getExportInForm() == 'true'){
							createFormFromClasse($aClasse);
						}
					}else {
						echo "La création de la classe ".$aClasse->getNomClasse()." a échouée :( .";
					}
				}
				
			}	
			/*
			echo "<br><br><br>";
			echo "nom de la classe : ".$aClasse->getNomClasse();
			echo "<br>la clé primaire est ".$aClasse->getPrimaryKey();
			echo "<br>les attributs sont ";
			$allAttributes = $aClasse->getAttributes();
			foreach ( array_keys($allAttributes) as $key){
				echo "<br>".$key;
				$param = array();
				$param = $allAttributes[$key];
				foreach ($param as $p){
					echo " ".$p;
				}
			}
			echo "<br>les clés secondaires sont ";
			$allForeignKeys = $aClasse->getForeignKeys();
			foreach ( array_keys($allForeignKeys) as $key){
				echo "<br>".$allForeignKeys[$key];
			}
			//print_r($aClasse->getAttributes());
			
			echo "<br><br><br>";
			*/
		}else{
			echo "Le fichier ".$url." n'existe pas...";
			break;
		}
	}
}else{
	echo "Veuillez renseigner le fichier XML contenant toutes les classes à convertir";
}




?>

